/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package DAO;

import DTO.ChiTietPhieuXuatDTO;
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author HuuTri
 */
public class ChiTietPhieuXuatDAO {
    static String PROC_INSERT = "spChiTietPhieuXuatInsert";
    static String PROC_DELETE = "spChiTietPhieuXuatDelete";
    static String PROC_UPDATE = "spChiTietPhieuXuatUpdate";
    static String PROC_SELECT_ALL = "spChiTietPhieuXuatSelectAll";
    
    
    
    /*Thêm một phiếu mới*/
    public static boolean insert(ChiTietPhieuXuatDTO chitietphieuxuat) {
        boolean res = true;
        
        try {
            SQLHelperDAO.execNonQuery(PROC_INSERT, getListParams(chitietphieuxuat));
        } catch (Exception ex) {
            res = false;
        }
        
        return res;
    }
    
    /*Xóa một phiếu bằng mã phiếu*/
    public static boolean delete(ChiTietPhieuXuatDTO chitietphieuxuat) {
        boolean res = true;
        
        try {
            SQLHelperDAO.execNonQuery(PROC_DELETE, getListParams(chitietphieuxuat));
        } catch (Exception ex) {
            res = false;
        }
        
        return res;
    }
    
    /*Cập nhật thông tin bằng mã phiếu*/
    public static boolean update(ChiTietPhieuXuatDTO chitietphieuxuat) {
        boolean res = true; 
        
        try {
            SQLHelperDAO.execNonQuery(PROC_UPDATE, getListParams(chitietphieuxuat));
        } catch (Exception ex) {
            res = false;
        }
        
        return res;
    }
    
    /*Lấy toàn bộ thông tin phiếu xuất hàng*/
    public static DefaultTableModel getTableModel() {
        return SQLHelperDAO.execQuery(PROC_SELECT_ALL, null);
    }
    
    /*Chuyển biến DTO thành danh sách tham số*/
    private static List<Parameter> getListParams(ChiTietPhieuXuatDTO chitietphieuxuat) {
        List<Parameter> listParams = new ArrayList<>();
        
        listParams.add(new Parameter(ChiTietPhieuXuatDTO.MA_CHI_TIET, chitietphieuxuat.getMaChiTiet()));
        listParams.add(new Parameter(ChiTietPhieuXuatDTO.MA_DON_VI_TINH, chitietphieuxuat.getMaDonViTinh()));
        listParams.add(new Parameter(ChiTietPhieuXuatDTO.MA_PHIEU, chitietphieuxuat.getMaPhieu()));
        listParams.add(new Parameter(ChiTietPhieuXuatDTO.SO_LUONG, chitietphieuxuat.getSoLuong()));
        listParams.add(new Parameter(ChiTietPhieuXuatDTO.DON_GIA, chitietphieuxuat.getDongia()));
        listParams.add(new Parameter(ChiTietPhieuXuatDTO.THANH_TIEN, chitietphieuxuat.getThanhtien()));
        
        return listParams;
    }
}